<?php

namespace app\index\model;

use think\facade\Db;

/**
 * 通知资讯模型
 * 
 * 时间 ： 2020年4月29日12:50:43
 * 作者 ： 夏立军
 */
class Notice
{

    /**
     * 获取最新的N条资讯数据
     *  // 1. 已置顶的数据
     *  2. 已启用的数据
     * 
     * @return N条数据
     */
    public function get_notice_n_data()
    {
        $size = config('ams_config.notice_data_size') ?? 3;
        return Db::name('notice')
            ->where('display', 1)
            ->where('is_top', 1)
            ->order('update_time', 'desc')
            ->limit($size)
            ->select();
    }

    /**
     * 通过ID获取一条数据信息
     * 
     * @param $id 资讯ID
     * @return 资讯数据
     */
    public function get_notice_data_by_id(int $id)
    {
        return Db::name('notice')->where('id', $id)->find();
    }

    /**
     * 获取通知数据总量,已启用的数据
     * 
     * @return 通知数据总量
     */
    public function get_notice_info_count()
    {
        return Db::name('notice')->where('display', 1)->count();
    }

    /**
     * 获取全部的数据，分页获取
     * 
     * @param $offset 开始位置
     * @param $size 需要返回的数据
     * @return 结果
     */
    public function get_notice_info_page(int $offset, int $size)
    {
        return Db::name('notice')->where('display', 1)
            ->order('update_time','desc')
            ->limit($offset, $size)
            ->select();
    }
}
